package com.dp.client.util;

import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.DialogBox;
import com.google.gwt.user.client.ui.DockPanel;
import com.google.gwt.user.client.ui.DockPanel.DockLayoutConstant;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.Panel;
import com.google.gwt.user.client.ui.SimplePanel;
import com.google.gwt.user.client.ui.VerticalPanel;

public class Alerts {
	public static final String MENSAJE_ERROR_CONEXION = "Hubo un error de conexion.";

	public static void crearAlerta(String mensaje) {
		final DialogBox dialog = new DialogBox();
		VerticalPanel pan = new VerticalPanel();
		pan.setHeight("100%");
		pan.setWidth("360px");
		dialog.setText("Aviso");
		// Enable animation.
		dialog.setAnimationEnabled(true);
		pan.add(new Label(mensaje));
		DockPanel dock = new DockPanel();
		Button ok = new Button("OK");
		ok.setWidth("60px");
		ok.addClickHandler(new ClickHandler() {
			public void onClick(ClickEvent event) {
				dialog.hide();
			}
		});
		dock.add(ok, DockPanel.EAST);
		SimplePanel left = new SimplePanel();
		left.setWidth("300px");
		dock.add(left, DockPanel.CENTER);
		pan.add(dock);
		dialog.setWidget(pan);
		dialog.center();
		dialog.setAnimationEnabled(true);
		dialog.show();
		Timer timer = new Timer() {

			@Override
			public void run() {
				dialog.hide();

			}

		};
		timer.schedule(2000);

	}

	
	public static String crearMensajeExitoCreacion(String objetoCreado) {
		return objetoCreado + " fue satisfactoriamente creado.";
	}

	public static void dialogErrorConexion() {
		crearAlerta(MENSAJE_ERROR_CONEXION);
	}

	public static void dialogExitoCreacionDeObjeto(String objetoCreado) {
		crearAlerta(crearMensajeExitoCreacion(objetoCreado));

	}

	public static void dialogExitoEliminacionDeObjeto(String objetoCreado) {
		crearAlerta(crearMensajeExitoEliminacion(objetoCreado));

	}

	private static String crearMensajeExitoEliminacion(String objetoCreado) {
		return objetoCreado + " fue satisfactoriamente eliminado.";
	}

	public static void dialogExitoModificacionDeObjeto(String objeto) {
		crearAlerta(crearMensajeExitoModificacion(objeto));

	}

	private static String crearMensajeExitoModificacion(String objeto) {
		return objeto + " fue satisfactoriamente modificado.";
	}

	public static boolean confirmacionEliminacion() {
		return Window.confirm("Esta seguro que desea eliminar?");
	}

	public static boolean confirmacionGenerica( String msg ){ return Window.confirm( msg ); }
	public static void dialogErrorPersonalizado(String error) {
		crearAlerta(error);
	}

	public static void dialogErrorEntero(String campo) {
		crearAlerta("Se debe ingresar un numero en el campo " + campo);
	}

	public static void dialogErrorVacio(String campo) {
		crearAlerta("El campo " + campo + " es requerido");
	}

	public static void dialogErrorDecimal(String campo) {
		crearAlerta("Se debe ingresar un decimal en el campo " + campo);
	}
}
